package com.clstu.leetcode;

/**
 * leetcode 外观数列
 */
class Solution8 {

    public static void main(String[] args) {
        System.out.println(countAndSay(4));
    }


    public static String countAndSay(int n) {
        return getN(n);
    }

    //编写方法递归返回第cur个字符串
    public static String getN(int cur){
        //如果为1直接返回1
        if(cur == 1){
            return "1";
        }
        //如果不为1,遍历上一个字符串,再统计拼接即可
        String str = getN(cur -1);
        int count = 0;
        StringBuilder sb = new StringBuilder();
        for(int i = 0;i<str.length() ; i++){
            if(i==0 || str.charAt(i) == str.charAt(i-1)){
                count++;
            }else{
                sb.append(count).append(str.charAt(i - 1));
                count = 1;
            }
            //如果是最后一个字符了
            if(i == str.length()-1){
                sb.append(count).append(str.charAt(i));
            }
        }
        return sb.toString();
    }
}
